﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using YXChatApiService.Core.Common;

namespace YXChatApiService.Core.AccountEntity.DomainManager
{
    public interface IAccountManager: IDomainBaseManager<Account,Guid>
    {
        /// <summary>
        /// 新增账户
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        Task<Account> InsertAsync(Account entity);
        /// <summary>
        /// 删除账户
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Task DeleteAsync(Guid id);
        /// <summary>
        /// 修改账户信息
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        Task<Account> UpdateAsync(Account entity);
        /// <summary>
        /// 通过账号获取账户信息
        /// </summary>
        /// <param name="accountNumber"></param>
        /// <returns></returns>
        Account GetAccount(string accountNumber);
        /// <summary>
        /// 通过id获取账户信息
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Account Get(Guid id);
    }
}
